package vistas;

import java.awt.Color;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.Observable;
import java.util.Observer;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;

import modelo.Usuario;
import modelo.Juego;

public class PanelInfoJuego extends JPanel implements Observer{
	private JLabel Jugador;
	private JLabel Algos;
	private Usuario competidor;
	/*private JLabel lblDinero;
	private JLabel lblCantRegiones;*/
	
	public PanelInfoJuego() {
		super();
		this.setBackground(Color.red); 
		initGUI();
		inicializar();
	}
	
	private void initGUI() {
		this.Jugador = new JLabel();
		Border borde = BorderFactory.createLoweredBevelBorder();
		setBorder(BorderFactory.createTitledBorder(borde,"Informacion de Jugador"));
		setLayout( new GridBagLayout() );
		GridBagConstraints constraints = new GridBagConstraints();

		constraints.gridx = 0;
		constraints.gridy = 0;
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		constraints.weightx = 0.0;
		constraints.weighty =0.0;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.anchor = GridBagConstraints.WEST;
		this.add(this.Jugador,constraints);
		this.Algos = new JLabel();
		constraints.gridy = 1;
		this.add(this.Algos,constraints);
		
	}
	
	private void inicializar(){
		this.Jugador.setText("Jugador:");
		this.Algos.setText("Algos:");
	}
	
	public void setNombre(String nombre){
		this.Jugador.setText(nombre);
	}
	
	//Actualizacion del Panel
	public void update(Usuario jugadorDeTurno){
		actualizarPanel(jugadorDeTurno);
	}

	private void actualizarPanel(Usuario jugador){
		 
		this.Jugador.setText("Jugador: " + jugador.getNombre());
		this.Algos.setText("Algos :"+ jugador.getDinero());
		//this.lblDinero.setText("Dinero: " + jugadorDeTurno.getDineroAcumulado() + " Algo$");
		//this.lblCantRegiones.setText("Regiones Ocup/Conquistadas: " 
				//+ jugadorDeTurno.getCantidadRegionesOcupadas()+ "/" + jugadorDeTurno.getCantidadRegionesConquistadas());
	}
	
	public void mostrar(){
		this.setVisible(true);	
	}

	@Override
	public void update(Observable arg0, Object arg1) {
		this.competidor = Juego.getInstanciaPartida().getUsuario(1);
		this.actualizarPanel(this.competidor);
	}
}
